C语言队列与栈实战
📚 共计 30 章节
01
数据结构基础
数据结构概念 · 逻辑结构与物理结构 · 算法复杂度分析(大O表示法)
概念
复杂度
02
线性表概述
线性表的定义 · 抽象数据类型 · 顺序存储与链式存储对比
线性表
存储结构
03
顺序表实现
定义与初始化 · 插入与删除 · 查找与修改
顺序表
操作
04
单链表基础
节点定义 · 创建与遍历 · 头插法与尾插法
单链表
插入
05
单链表操作
插入与删除 · 查找与修改 · 销毁
单链表
增删改
06
双链表与循环链表
双链表定义与实现 · 循环链表 · 双向循环链表
双链表
循环
07
栈的定义与顺序实现
栈的概念(LIFO)· 抽象数据类型 · 顺序栈入栈与出栈
栈
顺序栈
08
链式栈的实现
链式栈节点定义 · 入栈与出栈 · 顺序栈与链式栈对比
链式栈
对比
09
栈的应用(一)
括号匹配 · 中缀转后缀 · 后缀表达式计算
括号
表达式
10
栈的应用(二)
函数调用栈与递归 · 汉诺塔非递归 · DFS基础
递归
DFS
11
队列的定义与顺序实现
队列概念(FIFO)· 抽象数据类型 · 假溢出问题
队列
顺序
12
循环队列
设计思想 · 入队与出队 · 判空与判满
循环队列
判满
13
链式队列的实现
节点定义 · 入队与出队 · 销毁
链式队列
操作
14
双端队列
双端队列概念 · 顺序实现 · 链式实现
双端队列
deque
15
队列的应用
BFS基础 · 层次遍历二叉树 · 生产者消费者模型
BFS
二叉树
16
栈与队列综合实战(一)
用栈实现队列 · 用队列实现栈
互实现
经典
17
栈与队列综合实战(二)
最小栈设计 · 循环双端队列设计
设计
最小栈
18
字符串与KMP算法
字符串存储 · 朴素匹配 · KMP原理与next数组
KMP
字符串
19
树的基本概念
树的定义与术语 · 存储结构(双亲、孩子、兄弟)· 遍历
树
存储
20
二叉树基础
定义与性质 · 顺序存储 · 链式存储
二叉树
性质
21
二叉树的遍历
前序/中序/后序递归 · 层序遍历(队列)
递归
层序
22
二叉树遍历非递归实现
前序非递归(栈)· 中序非递归 · 后序双栈法
非递归
栈
23
线索二叉树
线索二叉树概念 · 中序线索化 · 线索遍历
线索
中序
24
树与森林
孩子兄弟表示法 · 树与二叉树转换 · 森林与二叉树转换
森林
转换
25
哈夫曼树与编码
哈夫曼树定义 · 构建 · 哈夫曼编码与解码
哈夫曼
编码
26
图的基本概念
图的定义与术语 · 邻接矩阵 · 邻接表
图
存储
27
图的遍历
DFS(栈实现)· BFS(队列实现)
DFS
BFS
28
最小生成树
普里姆(Prim)· 克鲁斯卡尔(Kruskal)
Prim
Kruskal
29
最短路径
迪杰斯特拉(Dijkstra)· 弗洛伊德(Floyd)
Dijkstra
Floyd
30
排序算法(一)
冒泡排序 · 选择排序 · 插入排序 · 希尔排序
排序
基础